Various domestic and international standards have been established for the over-the-air interfaces associated with cellular telephone systems, each system being based upon multiple access techniques such as frequency division multiple access (FDMA), time division multiple access (TDMA), or code division multiple access (CDMA). Some of the more well-known of these standards are Advanced Mobile Phone Service (AMPS), Global System for Mobile (GSM), and Interim Standard 95 (IS-95). IS-95 and its derivatives, IS-95A, IS-95B, ANSI J-STD-008 (referred to collectively herein as IS-95), and other high-data-rate systems are promulgated by the Telecommunication Industry Association (TIA) and like standards bodies. Cellular systems, as used herein, includes cellular and personal communications services (PCS) frequencies.
IS-95 cellular telephone systems use CDMA signal processing techniques to provide efficient and robust cellular telephone service. Cellular telephone systems configured substantially in accordance with the use of the IS-95 standard are described in U.S. Pat. Nos. 5,103,459 and 4,901,307, which are assigned to the assignee of the present invention and are incorporated by reference herein. CDMA techniques are also used in the cdma2000 ITU-R Radio Transmission Technology (RTT) Candidate Submission (referred to herein as cdma2000), issued by the TIA. The standard for cdma2000 is given in the draft versions of IS-2000 and IS-856 (cdma2000 1×EV-DO). The cdma2000 1×EV-DO communication system defines a set of data rates, ranging from 38.4 kbps to 2.4 Mbps, at which a base station (BS) may communicate with a wireless communication device.
Given the growing demand for wireless data applications, the need for very efficient wireless data communication systems has become increasingly significant. In particular, as computer users have become increasingly mobile, the need has arisen to access the internet protocol (IP) network via the wireless networks on an efficient and high-speed basis. IP network access may be provided through a wireless network by tethering a wireless communication device to an electronic computing device, the tether comprising either a physical or wireless connection. The electronic computing device is referred to hereinafter as terminal equipment (TE). Applicable wireless communication devices are also referred to as “mobile stations” (MS) or “user equipment” (UE) in some of the wireless communication standards. For illustrative ease, the terminology “MS” will be used hereinafter. A MS may be, for example, a cellular phone, a personal digital assistant (PDA), a wireless modem, combinations thereof, or the like. A TE may be a computing device, such as, for example, a laptop computer, a desktop computer, a PDA, or combinations thereof. The wireless or physical medium between a MS and TE may include one or more PCMCIA cards, Universal Serial Bus (USB) media, serial media, BlueTooth, IEEE 802.11, or the like. The wireless medium between the MS and the TE, and between the MS and the network, may perform transmission of data packets that originate or terminate at points within an IP network.
A myriad of protocols exist for transmitting packetized traffic between points within IP networks, so that information arrives at its intended destination. A principal such protocol is “The Internet Protocol,” Request for Comment (RFC) 791 (September, 1981). The IP protocol requires that each data packet begins with an IP header containing source and destination address fields that uniquely identify host and destination points. Addresses for destination points and source points are differentiated by the unique IP address in a header portion of each data packet. The IP protocol provides for the fragmentation of large data packets into a train of smaller packets before transmission, so that a destination point must be able to reassemble the large packet from the smaller packets upon receipt of the destination IP address fields of the smaller packets. The most recent version of the IP protocol is IPv6. IPv6 uses larger IP address lengths (128 bits as compared to the 32 bits that was standardized in the old protocol, IPv4), and thus can support more devices on the network. Another protocol is “IP Mobility Support,” promulgated in RFC 2002 (October 1996), which is a protocol that provides for transparent routing of IP datagrams to mobile nodes.
The Point-to-Point Protocol (PPP), promulgated in RFC 1661 (July 1994), provides a standard method in the link layer of a communication for encapsulating IP information over point-to-point links. As such, PPP provides for the use of Transmission Control Protocol/Internet Protocol (TCP/IP) networking applications at and among points on a network. TCP/IP is the collection of networking protocols that provide a framework used by applications to communicate information over a network. TCP/IP includes IP protocol in the network layer of a communication and TCP protocol in the transport layer of a communication. IP is the central, unifying protocol in TCP/IP, and as such, provides the basic delivery mechanism for packets of data sent between all points on a network.
The Transmission Control Protocol (TCP) provides a reliable transfer between two points on a network. TCP assures data integrity by assuring the ordered and complete delivery of data. TCP depends on IP to move packets from point to point on the network. TCP establishes and ends a connection with the destination IP address via an exchange of management packets. Each application running TCP distinguishes itself from other applications at the same network point by reserving a 16-bit port number. Port numbers are placed in the TCP header by the originator of the packet before the packet is passed to the network, and the destination port number allows the IP packet to be delivered to the intended recipient at the destination point.
In the communication protocols discussed hereinabove, and particularly in PPP, data is sent over slow serial links. Compression was designed to alleviate this slowness. More specifically, because the point-to-point efficiency of a protocol is related to the ratio of data to the entire packet (including header information and data) sent over the serial line, header compression is motivated by the need for improved interactive response over serial lines.
Van Jacobson header compression (VJ compression) was designed to compress the header transmission of TCP/IP. Each TCP/IP packet has a header, normally 40 bytes in length. Of these 40 bytes, 20 bytes are normally assigned to IP fields and 20 bytes are normally assigned to TCP fields. Van Jacobson compression reduces the size of a TCP/IP header to as few as three bytes.
The initial TCP/IP header sent for a TCP/IP session contains the necessary information to exchange the IP packet with the right destination, and to exchange data with the right port at the right destination, for a given TCP/IP session. However, once an initial header is received and the session is established, the end points of the TCP/IP session over the PPP need only be informed of which session the incoming TCP/IP is associated with, because the remainder of the addressing fields in the header remain static for the duration of the session. Thus, most of the static addressing fields needed in the initial TCP/IP header can be eliminated in subsequent headers for that session. The elimination of these static header fields after receipt of the initial uncompressed TCP/IP header constitutes the VJ compression of the subsequent TCP/IP headers.
Note that an IP packet is a non-TCP/IP packet, or an uncompressable TCP/IP packet, in accordance with RFC 1144 (February 1990). A VJ uncompressed packet is similar to an P packet, but has a connection identification (CID) replacing the IP protocol field in the IP packet. A VJ compressed packet has a VJ compressed header, but also includes a CID. The CID is used to identify the connection at a source from which a communication originated, or at a destination to which information is targeted. As such, the CID may represent the respective ports through which sending application software and receiving application software communicate. Due to the fact that a sending port and a receiving port can track an active communication once that communication is originated, subsequent TCP/IP packets after the originating TCP/IP packet need only send a CID to the destination rather than detailed addressing information. This use of the CID is enabled because the sender and receiver retain the original detailed addressing information from the originating IP packet for the duration of the communication link, and thus can send communications to the correct destination using only the short-hand of the CID.
The transmission of data packets using compression from the IP network over a wireless communication network, or from the wireless communication network over the IP network, is allowed by adherence to a set of protocols. This set of protocols is referred to as a protocol stack. A MS may be the origination or the destination of an IP packet, or the MS may be a gateway to an electronic device that is the origination or destination of an IP packet.
IP packets are transported between the wireless communication network and an IP network destination via a packet data service node (PDSN) in the wireless communication network that provides access to the IP network. The TCP/IP header in non-initial communications through the PDSN is often VJ compressed. The VJ compressed TCP/IP header and the accompanying TCP/IP packet data are embedded as part of the data of the PPP packet.
An MS typically has more limited computing power than a stationary electronic device due, in part, to hardware and size restrictions. Running software applications on both the MS and the TE, while the MS and TE share the MS as the gateway to the wireless network and the IP network, also causes severe computing limitations. Thus, it would be desirable, in order to minimize the computing necessary at the MS which serves as the gateway to the wireless and IP networks, to provide an efficient way for an MS to detect whether an incoming packet is an IP packet. Likewise, it would be desirable for the MS to detect whether a TCP/IP packet header is VJ compressed or VJ uncompressed and, if the incoming packet header is VJ compressed, to assess the destination of the incoming packet without uncompressing the VJ compressed header.
Therefore, the need exists for an apparatus, system and method that improves the efficiency of the MS in filtering VJ compressed TCP/IP headers, and improves the efficiency of the MS in assessing the destination of IP packets.